const fs = require('fs');
const path = require('path');
const time = require('time-stamp');
const express = require('express');
const router = express.Router()

// 引入
const svg = require('svg-captcha')

// 写路由渲染页面
router.get('/login', (req, res) => {
    res.sendFile(path.join(__dirname, 'login.html'))
})

router.get('/register', (req, res) => {
    res.sendFile(path.join(__dirname, 'register.html'))
});


// 获取persons.json中的数据
let dir = path.join(__dirname, 'persons.json')
let data = fs.readFileSync(dir, 'utf-8');
data = JSON.parse(data);
console.log(data);


// 登录逻辑
router.post('/login', (req, res, next) => {
    // 获取前段传来的数据
    let { tel, pass } = req.body;
    // 判断传来的数据是否为空
    if (!tel || !pass) {
        next('用户或密码错误');// next执行完后边的代码继续执行
        return;
    }
    // 匹配
    let s = data.find(item => item.username == tel && item.password == pass);
    if (s) {
        res.send({ code: 200, msg: '登录成功' })
    } else {
        next('用户名或密码错误')
    }
})

// 注册逻辑
router.post('/register', (req, res, next) => {
    // 获取前端传来的数据
    let { tel, pass, pass2, yzm } = req.body;
    console.log(tel, pass, pass2, yzm);

    // 判断验证码是否正确
    let trueyzm = req.session.code;
    console.log(trueyzm);
    if (yzm.toUpperCase() != trueyzm.toUpperCase()) {
        next('验证码输入错误');
        return;
    }

    // 传来的参数不能为空
    if (!tel || !pass || !pass2) {
        next('请输入有效内容');
        return;
    }
    // 判断两次密码是否一致
    if (pass != pass2) {
        next('输入的两次密码不一致');
        return;
    }
    // 获取persons.json数据 data

    // 判断
    let s = data.find(item => item.username == tel);
    if (s) {
        next('用户名已存在')
    } else {
        data.push({ username: tel, password: pass, time: req.time });
        // 不存在的话重新写入
        fs.writeFileSync(dir, JSON.stringify(data));
        res.send({ code: 200, msg: '注册成功' })
    }
});

// 验证码
router.get('/code', (req, res) => {
    let captcha = svg.create({
        noise: 3,
        color: true,
        background: '#ff6700',
        size: 4,// 验证码长度
    });
    // console.log(captcha);
    // 将正确结果存储到session
    req.session.code = captcha.text

    res.type('svg')// 设置mime类型svg
    res.send(captcha.data)// 响应出去
})

// 暴露出去
module.exports = router;
